The present invention relates to a parallel computer, and a computer cluster system, and in particular, to a method of efficient data passing between nodes.
The parallel computer is a computer system configured for the purpose of obtaining a result in short time by coupling a plurality of computing nodes by a high speed network, and by dividing one problem and computing simultaneously on the plurality of nodes. In such a computation, since the performance of the system is affected to a great extent by the processing performance of each node as well as the performance of the network which connects between the nodes, the parallel computer is provided with an especially equipped high speed network.
On the other hand, there is another computer system called as a computer cluster which is configured to use independent computers as the computing nodes and to use a general purpose local area network (LAN) as the network, and to perform similar parallel computation. The computer system configured as mentioned above has a high capability of operation, and when the scale of the problem is small, practical parallel computation is possible even when the network operates more or less at low speed.
Hereinafter, "parallel computer" refers to the above-mentioned parallel computer, and computer cluster. The computing node is described simply as a node. When viewed from a certain node, this node itself is called as a local node. Also, when viewed from a certain node, nodes within the parallel computer other than the local node are called as the other nodes, or remote nodes.
The control of cooperation between the nodes in the parallel computer is called as message passing between the nodes. In the message passing, control information, data used for computation, data of computed result, or file data or the like is delivered and received between the nodes through the network. Accordingly, an operating system (OS) which controls each node has a message passing function as a basic function. The message passing can be utilized by an application or the OS itself.
The role performed by each node of the parallel computer is not necessarily uniform. For example, a device physically connected to a node differs sometimes for each node, and thus, the role of the node differs necessarily. Furthermore, it is usual to distinguish a node performing the control of the system from a node exclusively performing the computation.
An example of such a parallel computer is disclosed in a document by Zajcew, et al. entitled "An OSF/I Unix for Massively Parallel Multicomputers" (Proceedings of the Winter 1993 USENIX Conference, pp 449 to 468).
In this document, an OS called as a kernel operates on each node. The kernel abstracts the message passing by a concept called as a port. The port is one kind of a message queue, and when the kernel sends a message to the port, this message is enqueued in the port. Also, when the kernel assigns this port and requests for a reception of a message, it is possible to receive the message enqueued in this port. In this manner, the kernel on each node can indirectly specify a node of a receiving party by the port.
Moreover, in the document mentioned above, a control program called as a server is operated on the kernel. The server is activated by a specific node called as a server node, and performs control such as to activate an application on each node. Furthermore, for a node having a disk device connected thereto, a file server is activated, and a file access service is performed. Also, for a node provided with a device for an external network (not an internal network which connects between nodes) for communication with other systems, a communication server is activated, and takes charge of an external communication function.